<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2">
<meta name="theme-color" content="#222">
<meta name="generator" content="Hexo 5.4.0">
  <link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon-next.png">
  <link rel="icon" type="image/png" sizes="32x32" href="/images/%E8%BF%AA.png">
  <link rel="icon" type="image/png" sizes="16x16" href="/images/%E8%BF%AA.png">
  <link rel="mask-icon" href="/images/logo.svg" color="#222">

<link rel="stylesheet" href="/css/main.css">


<link rel="stylesheet" href="/lib/font-awesome/css/font-awesome.min.css">
  <link rel="stylesheet" href="//cdn.jsdelivr.net/gh/fancyapps/fancybox@3/dist/jquery.fancybox.min.css">

<script id="hexo-configurations">
    var NexT = window.NexT || {};
    var CONFIG = {"hostname":"zhengyidi.github.io","root":"/","scheme":"Pisces","version":"7.8.0","exturl":false,"sidebar":{"position":"left","display":"post","padding":18,"offset":12,"onmobile":false},"copycode":{"enable":true,"show_result":"flat","style":null},"back2top":{"enable":true,"sidebar":true,"scrollpercent":true},"bookmark":{"enable":false,"color":"#222","save":"auto"},"fancybox":true,"mediumzoom":false,"lazyload":false,"pangu":false,"comments":{"style":"tabs","active":null,"storage":true,"lazyload":false,"nav":null},"algolia":{"hits":{"per_page":10},"labels":{"input_placeholder":"Search for Posts","hits_empty":"We didn't find any results for the search: ${query}","hits_stats":"${hits} results found in ${time} ms"}},"localsearch":{"enable":true,"trigger":"auto","top_n_per_article":1,"unescape":false,"preload":false},"motion":{"enable":true,"async":false,"transition":{"post_block":"fadeIn","post_header":"slideDownIn","post_body":"slideDownIn","coll_header":"slideLeftIn","sidebar":"slideUpIn"}},"path":"search.xml"};
  </script>

  <meta name="description" content="Redis持久化和恢复">
<meta property="og:type" content="article">
<meta property="og:title" content="Redis持久化和恢复">
<meta property="og:url" content="https://zhengyidi.github.io/redis/Redis/Redis%E7%9A%84%E6%8C%81%E4%B9%85%E5%8C%96%E5%8F%8A%E6%81%A2%E5%A4%8D/index.html">
<meta property="og:site_name" content="Zhengyidi&#96;s 学习记录">
<meta property="og:description" content="Redis持久化和恢复">
<meta property="og:locale" content="zh_CN">
<meta property="article:published_time" content="2021-08-07T00:00:00.000Z">
<meta property="article:modified_time" content="2021-11-13T14:58:22.518Z">
<meta property="article:author" content="zhengyidi">
<meta property="article:tag" content="redis">
<meta name="twitter:card" content="summary">

<link rel="canonical" href="https://zhengyidi.github.io/redis/Redis/Redis%E7%9A%84%E6%8C%81%E4%B9%85%E5%8C%96%E5%8F%8A%E6%81%A2%E5%A4%8D/">


<script id="page-configurations">
  // https://hexo.io/docs/variables.html
  CONFIG.page = {
    sidebar: "",
    isHome : false,
    isPost : true,
    lang   : 'zh-CN'
  };
</script>

  <title>Redis持久化和恢复 | Zhengyidi`s 学习记录</title>
  






  <noscript>
  <style>
  .use-motion .brand,
  .use-motion .menu-item,
  .sidebar-inner,
  .use-motion .post-block,
  .use-motion .pagination,
  .use-motion .comments,
  .use-motion .post-header,
  .use-motion .post-body,
  .use-motion .collection-header { opacity: initial; }

  .use-motion .site-title,
  .use-motion .site-subtitle {
    opacity: initial;
    top: initial;
  }

  .use-motion .logo-line-before i { left: initial; }
  .use-motion .logo-line-after i { right: initial; }
  </style>
</noscript>

<link rel="alternate" href="/atom.xml" title="Zhengyidi`s 学习记录" type="application/atom+xml">
</head>

<body itemscope itemtype="http://schema.org/WebPage">
  <div class="container use-motion">
    <div class="headband"></div>

    <header class="header" itemscope itemtype="http://schema.org/WPHeader">
      <div class="header-inner"><div class="site-brand-container">
  <div class="site-nav-toggle">
    <div class="toggle" aria-label="切换导航栏">
      <span class="toggle-line toggle-line-first"></span>
      <span class="toggle-line toggle-line-middle"></span>
      <span class="toggle-line toggle-line-last"></span>
    </div>
  </div>

  <div class="site-meta">

    <a href="/" class="brand" rel="start">
      <span class="logo-line-before"><i></i></span>
      <h1 class="site-title">Zhengyidi`s 学习记录</h1>
      <span class="logo-line-after"><i></i></span>
    </a>
      <p class="site-subtitle" itemprop="description">休对故人思故国，且将新火试新茶。诗酒趁年华。</p>
  </div>

  <div class="site-nav-right">
    <div class="toggle popup-trigger">
        <i class="fa fa-search fa-fw fa-lg"></i>
    </div>
  </div>
</div>




<nav class="site-nav">
  <ul id="menu" class="menu">
        <li class="menu-item menu-item-home">

    <a href="/" rel="section"><i class="fa fa-fw fa-home"></i>首页</a>

  </li>
        <li class="menu-item menu-item-tags">

    <a href="/tags/" rel="section"><i class="fa fa-fw fa-tags"></i>标签</a>

  </li>
        <li class="menu-item menu-item-categories">

    <a href="/categories/" rel="section"><i class="fa fa-fw fa-th"></i>分类</a>

  </li>
        <li class="menu-item menu-item-archives">

    <a href="/archives/" rel="section"><i class="fa fa-fw fa-archive"></i>归档</a>

  </li>
      <li class="menu-item menu-item-search">
        <a role="button" class="popup-trigger"><i class="fa fa-search fa-fw"></i>搜索
        </a>
      </li>
  </ul>
</nav>



  <div class="search-pop-overlay">
    <div class="popup search-popup">
        <div class="search-header">
  <span class="search-icon">
    <i class="fa fa-search"></i>
  </span>
  <div class="search-input-container">
    <input autocomplete="off" autocapitalize="off"
           placeholder="搜索..." spellcheck="false"
           type="search" class="search-input">
  </div>
  <span class="popup-btn-close">
    <i class="fa fa-times-circle"></i>
  </span>
</div>
<div id="search-result">
  <div id="no-result">
    <i class="fa fa-spinner fa-pulse fa-5x fa-fw"></i>
  </div>
</div>

    </div>
  </div>

</div>
    </header>

    


    <main class="main">
      <div class="main-inner">
        <div class="content-wrap">
          

          <div class="content post posts-expand">
            

    
  
  
  <article itemscope itemtype="http://schema.org/Article" class="post-block" lang="zh-CN">
    <link itemprop="mainEntityOfPage" href="https://zhengyidi.github.io/redis/Redis/Redis%E7%9A%84%E6%8C%81%E4%B9%85%E5%8C%96%E5%8F%8A%E6%81%A2%E5%A4%8D/">

    <span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
      <meta itemprop="image" content="/images/avatar.gif">
      <meta itemprop="name" content="zhengyidi">
      <meta itemprop="description" content="">
    </span>

    <span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
      <meta itemprop="name" content="Zhengyidi`s 学习记录">
    </span>
      <header class="post-header">
        <h1 class="post-title" itemprop="name headline">
          Redis持久化和恢复
        </h1>

        <div class="post-meta">
            <span class="post-meta-item">
              <span class="post-meta-item-icon">
                <i class="fa fa-calendar-o"></i>
              </span>
              <span class="post-meta-item-text">发表于</span>

              <time title="创建时间：2021-08-07 00:00:00" itemprop="dateCreated datePublished" datetime="2021-08-07T00:00:00+00:00">2021-08-07</time>
            </span>
              <span class="post-meta-item">
                <span class="post-meta-item-icon">
                  <i class="fa fa-calendar-check-o"></i>
                </span>
                <span class="post-meta-item-text">更新于</span>
                <time title="修改时间：2021-11-13 14:58:22" itemprop="dateModified" datetime="2021-11-13T14:58:22+00:00">2021-11-13</time>
              </span>
            <span class="post-meta-item">
              <span class="post-meta-item-icon">
                <i class="fa fa-folder-o"></i>
              </span>
              <span class="post-meta-item-text">分类于</span>
                <span itemprop="about" itemscope itemtype="http://schema.org/Thing">
                  <a href="/categories/redis/" itemprop="url" rel="index"><span itemprop="name">redis</span></a>
                </span>
            </span>

          
            <div class="post-description">Redis持久化和恢复</div>

        </div>
      </header>

    
    
    
    <div class="post-body" itemprop="articleBody">

      
        <div class="hbe hbe-container" id="hexo-blog-encrypt" data-wpm="Oh, this is an invalid password. Check and try again, please." data-whm="OOPS, these decrypted content may changed, but you can still have a look.">
  <script id="hbeData" type="hbeData" data-hmacdigest="abaa53171f295ea5982e3e9dcfa4c75e681906a92aa3c935a4b92eec4bd3230a">22064b17c03cb0c0e58c99349b6889d058f28073545499d031887eaddbdeaa6b9362c7df577b2db21fe88011dba38f3fb36085153bb62f0327a918f1e0500738ca2cc499de42b677e1c94b791efa96095783bffba7590b2cb9f86f03862bad076057b2129033b735b863058f4d2a7377a76490a970904a0874ae97c9bc4637fd69aeb7861982555c12d68f6dc888c558fdca03e7984fd1f89856f8d1b319d48944a669b2891a3a0ea8a72915902332d567a22510e816895b11961ee9ab2eb5e19ab85b2c79dadf951530fd0dc902be7365120d820d59bfd8b0f87b63cda2d76c4563c20fc75707ec75df50cde7eb3487f0a914aa818fef435cd5a721d111605ecb5d34ab3c036ea65d57762082a96d0474e41901c62b1e077883e6f3fd12c17298f6a17a29eddb9a4d7395be71fa3e7e8545f71fdb74da93d02a91a42753e57a9d982de0397060eb6eea3367482a8d9b6e5b9b63e080d0c9f3b1d393d244180eb770b235c4cbc7fe9b198aef15a3690e5a932d0354820604cf1178b9f7ebd91da802c3d616b264d5f538eccafe062600340d18649c65cd03556cf344569d77762ad95afef0f89a52ac652c24524183ce7e4a3ed368d7553d281b0b48b91f285f951e9acab194c217b1a18f4bd85ce52604cd3d905671faf9109b6121afd0330d80198eff73b813661aede868d363e27649eff78a4b405290c2818efa46cac191a727ec242c44e3c464e772cf4282a153bac399b540ee31376967b1f1d4c4880e687543ebba80c29c1d8d48bae8dac0720cfac52d79f12a8e99160489f02eec08bab760b2869c2066c07d0a996c21e01821d4d2bcacec08fe807bf882340bb5b45d2815215b2a50ea8a3c41f2c5396a85b5ef0f62c05b68ca8242719994f19c094eb28b8b59f21850931ed68f574806578417b834d75907f758c41ff60aa29789ab001818d0015ca3e9710dfed75bc36c88023c831a9954126de49522251f616cd772cda10ec6b2502940a558a1b08fd70d5ced140de7587d8ff7522b4c6784a76e79b721933c7d7ff77dcc8c2ba6e25bec860f08a4db0756d851950613d98dffcec2cb37aa23148f7c6108f1979c7269a921689a5ce51fbc2297ba5f4de1c7a55b37cd3b76d932224ad0bea6b817b3ea69125c735f67ae56fc12c1442341f596585ca7be91102f19f35b1921d0ed1c4146802998dc5ace3df803bd436992bf4ee50eb8d901e5c59538e4b7ecc75c51fd8ad1700dda0db7914ecfb7842417b734ad4fe312a6946c94b1b686fca6959f7653910fe0fd0de97567dbe7c1ce2aa88058876622f2fa629afda5275fd5df6266be1c4c49675d72ea8c70451ce9f682868cd5279bcc605f258515dfb9608d089b4a17374b469e6f7e9578c8520684a6554c4fa699128c9f8985a3a5c2523fffa07707b516fe074c29d12b6a123d286444dbb5340125cc2870f34468933a35770a781fdb87238809eb91551508fd571b7d36187e9e5c1b83d87a0fabf8970e8b89c44ab212b494054807d48983ad5181b0c90ea1d2709c4369dc580a564e294a38353247c8d560f661905e42a5d211a5673fe876c13d0edac86433ce5bf37e2fe6a7e51f6343739b9d7613f4e11d95468fca0d03a6962048d3cabe43377f04f7aa74085f97c2592abcd8ce5fe534a82f4101d5ecdc4a6f31944af22d5ece7f54d0f230adc9aa1b404497858ea41cf877ae26ee13a1db0cb49122daa0a7f22a855f1e79551283c3b1e9d2d6b7edc10370b0ad88b3dbe8e59ab66cac39edab57ba0ef1c3cf028937ff847bc99863a0a8813d7ed195ea263378f39981ef679def3f6dc67838c0b38df2887dcaf30b35b530e6400de2c8b6d53052f0dd81da51f006f8e420fcfdae4be7ecce4c598eb4a0d481c830703a30527c7d79ec1caf2aeed653f536a87a16787765ac4df57dcf2867746b2c35bf3bd2c9c8e0f8b7af3b7d27b935db769c49c3e887ad6c8ce8dd9cc431cf138ae94a5888a540f9496c9a07a9187955a23e0e1ed7decf27f7d0c45fd57bea975c506f7d68ab28db3524fe899389592614c7a378a685167a6fd8b5435ff2e7858f805a1d8a1132c32773de1b339908c8473cbcd4ab2023e03de863c898b40fd20e7c3eaa5829a4e7b592370526feacb67a84051faffa5eafff041dfb9c9459bb38d86d7041b379515de5e68b5b6ad7b4057c28a19cf611a5b7a060845a7e0e957f991c4d9de5c0f53a2f9c71f2c3b715a51ad80827557b8587d6a06ca6f3d4e7ff2a028cfc1724bc1284b50961451c74b27707fcbc6ce1a8f4933f73ec1731cc8a5df00fd67a3145d2b0035ae234f0e375e520afa581cb59ce859112ebbb748fa51917e4935ed4b6314e43f3eac54013ea2925bed1a229442779df324e25746be9d80c02534b219caefcc90e066dd998e69a51fa703a48ea9d7f1372ba109d7c16ff89649bbc1fbd9a0689886552113f974f79e29de27f9e2e09c5b3a0aef6124ca4c270c6896a3122c9e466e2bf5ff60dc734df333508fc91e6063ee9f1bd0b2c1df374c3aacde58eb3a322087a9c408f9cb068fa5221d84a14e84da98c3019b5311ec8bf9dd7343b888dd66a79821d557a00bc518b0defac410dca99072f8fcd9d553688e7060008278fe5803a4b07bfa4f4c704e30cdc6450e11d081f803f1b98066924320e32d1c8c4b0dff216bd3a0db4e77e08c6638d42eb4cd5f4c650870d86356b39ed327867af2b8ef665940383af32fc1af8a4d1695ce6262ada6ae27f1f709ba7e473efe1cf52686cbb767b1bb31e1b97b05bc8f396f81f68dae0e9f3c72691f1aa7ebafa14ca79f338d1889d34497231ea9ecd61be9114b720899da8fbe0b0fea34354e13e41f264699e8b0166829c980d1816baebdbf9e33302e1d151abd801d2d97b4731ee650b6c988fc0b083dbcf5dabf1c4e850d8d2fc1cd769ca216a48d74595f6b41bb0e6bbf79ad91b8e2386e339e29d8af3c3a1d6aaddcb6cc90d18542c1f48053f8617a3d2c9ac6feb0b6096a139fd769a00572899146f67a6bf7abc26a08e9774c8e8941e1171bc210768b1c47f16ba4d80c0545f64dabf5ccfe176d00dacfbe7d9a862b529e33f0cc124bebfc86272abcac4efe9776b9b75668ac2f3b960bc35e04c795b7b8db32eaa1fb0899567417f0f9648d7034d2010b415427162fe7cc126cb83531a1c62eaf1a6a864ed3333da70451838ec6217034c109eea33f55b79bce3b3970d14fc7f01ad3a5b531aea54c13bd73f9afa47f05861eb47e5e5f213a70a62408ee7e3385d88dc8c94990e40aa6d005c9c720164d59734a897eb5c016f8f397596c5861eb73b2f8b7594fc1468e8bda638ef9656c95a3cf389402be126eb06282dda676115a741316b88da20e178c43d93b43bd0db88f69a7d8c47a99b543adf5a382ec53608da19a3dbdd464a8cc12e01940106976d8152403e2b1dba8ebde87e791a8b8f53da7dad205d046fb35e347af0522763d5762b8db73105260c1f0628cdd686d0cea09210a1f36c6f08922f88d9ec365c9822556571386248b08fff6b8fbce578d76f88195886759207bedc6d8b89c77b05b134fee2cb78ca2cca1c15486149421b43f68c1ae946fd3595605e04434d7aebdddf728c17844a6b7c6dcdfd2fa6f2aa3d752b371ba247188b210846cfbc014c14f021f32b74f3f067314a99ce49a8d5c233db54cb320740dc97f1a0bf21582c01473748137a9908005d1ef8ddd786e3409a245070c7e3c231d22bf13ce2545a075fbf91ec92771d06da3d1a0f7b23229abb681de534bbae9b60437272c83b78acf6c05edbd997e963dde4f9d20b10ceadd565435452e29a7c024f2ecf3f1ae95035b63dc5926e99e325322bd499bb85411ad188f503c45dc16fce47759af19efb326b3e24b11715d28847687b25e01f005630017ae0a0141044afede0a2eec95eed20c2de3f248857dcf446acbfd9686566da30218e4d48a29c3c47e4e696838a46e5684015542e41aefbd33f2bf0549e990d060fef0ee3887ce422b3273c8fd8bbf0450b084150b8d2337f420e8bcc07fcbdf9256fef48ddc5fd7ac2cdfca3a2b6fce27ea542e57a30c0128e9076f897929fdfe4f828fce28c24c43af046f35e80eab62f509ae3ac37432ff607bbd77f28fcf7d604d9fc99bf74418a2dab1e600f1f271630d66825b1436c8facf06f55ec2057261fcb21ef2dd535356f852808a8ef5d22951e69ead23f7676a02f2dfcc07f7367a721e7a8315f90bcd68ba15e822069b149bf6d7be656e731a949d2330e714a554b0bc32ea5c940476c2a7180c3aa1d9429e983977a05d474141855b4545d177eb3dcf5c13a20703ddd6c94ebd6fae266ecc3d40b8fb8d29de93cf0101e4952e7597d245e438ce80d116717bce382bdc027d71ca4d45e35df3487351884fde27173c2a99531e1af74e2f9c8d397fe735101cec4bcb9341318afdd534ad5ad77f2253eef44d01520583029103ee40b9ab78224f9f7632bfa49780b9ee8dbc50b9842e5c2ca210f2a46708fefd56dc13cd127810d0aef290f78af1ec69a26b64772dff2386c924e89e8d508eeb42cd98aa888a12f59d60ebe577a793af9d8adbdb0569713c78318a5c92333fbb94f931d5c7638e0d996f6687e4e0e15c2a74342e96676d5b827b5b8236c25f8831edfd0e44b8197b2dc9b3602276ea614460d1384f432bcc8738de93f3462566bb2b5c8ef337fb6e725f639dee44f8323c24dbce19448ac644eaf59bfd24367deab08f25588b27f9d1232ec6010ad5537b5ed21d1bd08d0c7f1a4eaf1b1fc14eeed743c9c9c06ccaa72fc351bfadd6ee03bae18d9fa450568505a5c1ac74122c0630cc8aeb9d3aeee62ebd7031b254e63ecbb9ddeeb011ff90d122fef86220f3210062c47dc7310cc677a76b7dedb8a0b69099bba35d88953ad3ea192573755b473f6e2177b935f6ec7a5582959306c5bdc402e32639be1dc0f87823e632d9b191542acda446c7414cbfb775ca2f20c323414c957df8f453079bcfb4976d008be68673605f2ec60eb631d12cf2994a151cd20c75965dab8837c8ce176e710352056ddd58e3d6877934563aa3d72547e9247b36c443ab903f919256979d623263b2688ee160677459e189f20511b111038c6b21741102eeb1065f6af6c4a5b2e7d0ed8d2f4f980f517fea463f592fb3a4267f754fad642972e214aa81d97b3b98f4f66b6a0f41c67af00a1427d01475dcb00b782ab9b5ae90d54fcfe36784481c89c7f880f61483ec1e2625a9833a98f0fd0cac253687b29d10971b1c7696f7547d9d310bb7c1e26d19483b995baba99e93127fd6fb09b2997062067cc71ce003b5a310c7f290bf357df944e4ee5610049600c25c6e6a6f13a1f3d3a9c9d24ae7f2a20b907094e3fcc62b13caf3cb72e7a4fbe9bff0b9f55cca5ffea2f3fee6d2d2fb2589023ebe88b21703b15155dcbc8b601924e65595d0e6721ba960e3029eb7c31640fe1eaff29bf21cfd1e357ed0e84400cbee80ee0b99a87fd48b4bcc584f491be35c99279826eb053d11b9b51af4409d3df62304fc883b2fe76d558e7c0483f8cb294a43cd6b48f649bd47b187ea9e9bdcb23fd142f1b41ac75e1d0a91c5f2d5e25896c2b3d84bb86ab8e385c569e9ce1ed57bbc03dfa2c72939ce9db59edd5adf244325432f2b5769ddaba3ecc83ebd992b4f7af167b20c9448d6cfc3517a62d9c1380cea18d7dd77f758d73735ad7a9c9b1835d737013bf31f4389d91b710607864d68977ce4b9a7b50e3019211ba376009e8e13ed8c853d0457c4d37934ea66db41a181ef9630be939c7cf68387f627d46e96b455cffb6edb9631b86675bac06d141c12fada4b8974b49ec3e1c6541f60080a42decf85bf756e94fca01c074e30092b428c0602deded4b2ff5b55e76d3806577d5caedd0fc1289c406c807ea7b4ef5dc9f130fa4602af9fbdb74e93c44d124bbaca22cddeaa816ecf27630d690ca768714a6bc44c3edc759353550085dc028f9d95d760267d32055d834da825a8de151887cd0559a5ef2fb201f09159c27df7417721052abbdac375ac641f92168f8d69afff99fd71bb1934a2a99a2b75e2908d07a5d9bbd10645db3b86d5eabcdb1fa5703d0bdb49e779e8b04dd8f2b88a8f642e6162554d3e75b8ec01a9fbf5f8d890f34183081cb359cdbfb54be4622ba1885e5e3955cd128c1b989a76ae9a140654c733b2c1e000388a59b916ffb9d99e82836a1e6cab5036f09dbffa9b8a28c6e016f3cfb586b65535f8a30fb19d6dc8efa5a198793ffce5383f6410970e9a854538d4898347427aaaeadd7c6bb92fcddead0a3804744cfbb425ac1926422c1f5275f3c915fd24c426b559b4854762f69f84f69b1854369633ba2217bab80f0618b759bcf17be229714e986a25630bea84477ee54d7f9ac45647dcbcbc0994d2775d478edd2c1ac6fa0a6a150860adff96dafe31ec05a3cd6a02514edd672d92584723e441efbc85b1bbaf1f52c170d5684b773d4e3d1aab8fb62c56c72f2bfa35759bed62daabf763d3fe3d7948dcaf395a3e342ddcdc7878b7c7fecdd5700bec09be0014bdf54484e183e9286516b8a52ad7ccb329262329fe02caba3ee5867d00562a4232143b1bbfd639720f41a7194a40eeeafed9eb0f97df7dc16590730d0e6f73c3834bf3b1b23358dbb176d4209ac4f80fc690b2795ee12fe32ccd4bcc51a78998f06c8ef13f0e84da1fc8a6b9884bfd01aa7bff2e98823fc5b5c34335b55ad2bf4146d688b465f8c29e717741aea338016130b7a0ad3fd02fb95fd847c8db92bec1b6de91d9d9c36c6dd7d080a3aede0503ae0444117c3e55d0c71dbc269912189a124ddc6a0ec292d7e9cf89d4d9228507ec1f49f1ead68af1d44926283ee34c709a08f1f1a8c3d0987720909d2885ad267332c39519e52a67173d1467a4c53185f514c93879512cc908f75d69f2c620c0187e6d9089e4f7224234c8fe5f90a099169bb210647c6745f40211a43a5d204313d3646026910fe1235b029606dcc737d3c5d9e5e8e2bd3277aa90561eb79d0cbf1e4be88e6a414f656d1c8366131ed3d11e8dd12845969f509d3d5f4b93457f2eaa0fb32cd60734a889c293475e8ba0f0be3988e62928ff5a57e4591a964a271486852ba520a47f8340a96a17743d1b1d6e0147a9c66e0a1fa53accd5cc3203021dfbc9415ee4e8f52d09a6b30f43d3bb15d55b9816096a2789b7afe19088d41131a8958748dda3ba32d759f84132fca1901d59359125456f8db0028246549cf1ffbc5cab572c09dc4ac0bb861eac1480f33c7b88451be33c74c87cbe553a72aaf5bc21773ce1f59a7af156105a8b42ca37af5951ce7213839d6d910bdf52d46599d302138bc621aa7155bd86a5a23060642bc85bf3faeca027d46d249a6ae937d1e556f7fcb06021de928c327cb7b9abb090fa009069b51e82a6f2fd2fd3b3b754ba1a7e37b13e76b296c0404f5b05bddebbaf7d62342efa66fd2bc48bcf51ca4c0234fbd6f50b45af23e15d19c1b8beefd4bedc8fe93b685f30afaaab2b10b69e30efcef9d4d93af3c10185f49244d48b746f106ccbe2dee7d0d4ce89cf8d01f8109e715c695e2b4557fd99f20bd7333331725f5e5fb1983f5e69e6061be95af70a2ed076d495271f204b76230e1bcd96f9de50f7ab9712023d3645f64442b94e6cfbe2820ce705ecc000a7a79c189215b27e39eda53cf1c1edbab44df283f935a9db9dd6c5f996c10f2bd1c49a271f9f8636c8406ef872dd99ddf9c4875b6abdf848cf1b3de1cc5681ac06a2d1c42c074a54f5f90b636370835638b79ffe65ba5b486f4966379e84310fe4ef5817474009ffa9542d75367c534bbe16bcb1ab29cb0cbdb42b95ee2dd347418d622422810e146d9935407c4b7493d45bb4a64ab49ff2fae326ca894612eeee852c2c77ab9901d134ecfc9c6978f93256f59554bcd8fdb51c67d849a0a83cfbeefcd3623053de62b4b20a04f78f48364f1362e2afda5b5750027048deb1158f619756aca98d0e5053da43b78cb234486654ce337a475b58ee0fc8c7d15ee7faa4728c4b42004c9c83c66fd87f5a6f9f8ef0d96285fa3f5b98cdca852f11c4c07fedb5504bc950738a2e3dc53b2693fb1e52676b3bc3b2a74bef66b21595a4688a022cfc23a4e9fbbf5f6eca25739e84bca09fd765053c3939ebf1adae345c87b9207e985ebdda679f34473c9c5b821ad33d502afc906e8087316d694e26954f41c3eaf8a9e07fd26ab90ff1f7ea3236ab65b16cbd0e3617ab1b517ed997d32c1b5add868506211188672f892bc1c07c7948f542a5dabb9646aa5af7933d15f2b2183396bb2d9fc2de9cd75c1db1802f17803001e1c416f4672eed9291fa45c97c0177939444fefd8194c047d05842d67c07f042e33a301ac7363e1e54d0eb77eb9e65a74b79c9a7aca49c5949bec7b5f5473a55e863b7376f986969fedfec09e07681a7df744eee9efdbde5dd3d5930fb9164be78694c0ee92bb7e8b98e5d021a840d6a0fce26e89cbd50a702de03be87a6b0eb57a80619da439ab15ab577234a10126585ab817c65fd4cbf6fb8941b2320dc25dfe6b7fb437a3a2a536111c3b29d086a1039563abef618c5a9cae176db6014c16c8fc04f2c3d87ab783800d688aab4969b918a68c1265597cf56dee28a46f7bd77d4d5a00877131163a8ae0e3070e99365b3360bbfdbbcbc21354fb55b09af0822f9cfec10f5b0ca99ecda1d34f8dd066aeda88f75fb8b31a61e91e5d311ae30ad9117b7f3b70d92ca027bd37010f5f389b4bb875b2de92bdbe182c772869cb990dd1ac0cb8062a5d00c39d26ea0edb617744c544ed7826837f084363710dbf1d5a5e7e04ab204ad94a274c1dbb088813e3e88a4619da94aed7fbc878d37f6be3f21abdd0cc135744101e84b395a2f890a0d10d086994db447c6ed842723d32894a8336b64c11e54ea62ae18e9b580c7f0e6a76eb8196fbb26db2eb034b0093dd3dd46b9e422786369eb53d7655bed1b210c01097a7bb250d391764721fc8b81b9ded58437fe340c7328571eb18c71cd3972d264fc9e1ce39e4ec37eafa42b1bf5f2cccce80d027f877419e9261bc7f61198a6005d17652172a48554708323b6c54c24f2dc5b6f17a4a603fdc672406d25171cb933eadcd8d9730d30fa5bb3c7383a6a5afaf51037b31c98c9db6eac9ef461a39787d287d236acb458f3e557fe6da50fd82a15eedda82238397391e2ca938f3e99fbb4a0812d89fc068aa82b7e0b198a789f61e3fb122633d31d61f77c4e3382d23bda50c226a555cdbb40bd8d5d7695b99aeda4ed32ef1ca8a1a7e8d2dec3e37d637b0aef6730aa07dc052c8175ff90b7b715254c606cb89287291b84bb8c194600038d8ed3087a3e57adf06b371c4d079711a8e5ef31c5273cdcb6725f97b1700622cd1c575d451eb0ba391059e165dcaf44a552bdcb85d60c306a814044679b8342a635c638381912cb93f1dab86904b08b0e42f5f0acf8d3af6f7870ad4e39f8eee17f7b8d9db175264e116d2ab29b4069153b7d0e0f63566af48ec336624863aa0e26e2affd8cf2d958b0164103a972dbc41fb1562a2219adaeb4825bf373fc7747ce462f26741362afe7c907ea7bcc4076b527f364bbbc413cd0ab7e346380946f4b398e38b1f53e36cb4fcb41d7300a9042ba9dd888787a8639fb81fc5b549c1fda8819db41b446abe1915e5944ccde6de66c1570b74d56c039346210bb7fe9f1fa8b9f540ff1c03eb2aa7c4db2a55daf814ee3823c703b1aa092a492c5af588a36c2095970a0cab1efb7c9ba6d2c63f49187ea8480ef7f93fe89d312da0913d58e5ecbe6636da5cf2338e2eecf7f51c02dfafa604b5f23aa67d280d8ee8f4df71305f6d0998190d36c624b2279787208aca15a67ce2cf8fe1be1c02d8eed15558c45a912c5f8157e734868bddfdfd38cc60fb1c3350d4052f82ef70d878fb4f9f2363103a75f0606c0079d6d90043bf7023de9ba3ad392c29d9ade09499f86ba78a9631e220c86bbdacd89f727762701bebc52babe8ba5febd088312615b109ec8c8c7c7c0595ed7bf17b8e8345653871020e5bed644fee0a74d4f6cca44502c47fe456ee6ed3c85a3bd13d0759c23ac012c82e4042b7f297b8e6601cc83e4b10848f006c57a6df97c70e40251b1c2c65a7658b59ba9b7bf1cd53e2de56d32a9c32015d2c355683c611fdcfed6683a95fc32b34832a2b880503950fd82d1fd32d54cc75172fd4ea8c742fa20fd81461658648d84a7331168c403cfdfe8b1a65f5c46a3bb47ff52884c4024334f29fb3275abe7c1dd2871ecd405ee7c9c059581a9b522eb56c28b093dba0a9103e981245abed2a9daed7fbae51b6114b63e9ee97c88b7c0347df24310ea56d4e0b8f84a1b7d87ab5892f2885d1b8c593a77052f56f1da5226cf1f880b0187d6bfbf8468d4b669b3c85dd4bfe97fcf68a817023049fec0035962039b6727ba8bc77bbfa4b5df091aa6f7587b740c26378784fc1ba97d7d126dc56baa54ed3919d2d8501b97754e99261c130d5f3147606887b0b2b40e7cabdfa1cce699be775a7614d5ac9da7d92d5a295998132f71cd71058d125480e0dc4b2cd74d642ae02678232465d32dc0572dc30efe6a08f48c67889ffd2e8f9ad10464ac05a6bb3a13aac67e60e38ce7bd73c65c49352668c7ddcf5a92449e9ab3ee5db1b520b51901793a52151da544d5cb3611264998cbf8fd7a170df37d354d8a20afed7e6f3842e2fcada7cac143760f15b5c23de80eba91cd4e652897f317f5a39347abe99b753e2468a3a71211deec8fe806ba34029d3350295ab78a8227499ae5aaf92fd1c2423e9e4a9694c9f93a3ce5153162d669026828805da60dd1ddad6f8d0ba21d93def635ca150b7f38ffe64c6a0002a868d6ccc54220f13695e9fe23d4abf373f54ea9ad9e06f4fcac0a4ab2d6c485ff763ebec47c0ea1753d9b7870191df948f90ab7dc5a925423d05aead7750faf27d27e6a2f7e7d356ac4afee8b62779938a95cf53a39a748a4d58bd53f11e2330929756b0229d9b690a1668cf1ec84d393b9fd84e5ee122937499a743d171348e13812cbb978f89cb4995c18be89027715189226980c953ab5053f61f0fd2175c7ea61213c2bc90b115f752726e88d8ae383c285504a56c43c5562f580e23309b3b6cfb69306e3fc9d7f18bd58695d4f9b7c08b7a58ca20c674c1ae0561013a9bef8b05a799fe9f37414c1faf6a9ec37b5a8f48b29d3f6705f5661966771ac4fefe3afa086d728b944ebc822f49b31c0d02298a54c5814a205b8cbc2487941b3f754cf92ed3edf92dea17c534b9ee7ced6f531552b861b261ea402aea876de2ebeec30a2a1d85298d1004a20ede1e2b641a19f5be290bd4a70c640bdfde0d5ec23f784bd341bb80b9637a5d3453135c24ebad8a94723df8daacaccddabb06ad604e368e5c5c48f1ea122afe1b2f01fb88fc54f6204406202c6dce034bb750aa6ed580ec13a7c9c35c043dc3a9b1a0cbed5eeeeb3bb177dd9eeb8672c0e1d2fb4f8534cfc0ef33b74d9737273d7db3ff135932d401d1eb783ead1d98ea03becd1444be5107358dbda7a8c238e74dd4d614fc7196ffa8da38eff93a00c83a319d9ef9f64323704093a878e432c05315841ec84177998a7f96d4f340fe51e0d7c9c924168ae4fcb4793d26acc2722c9c168fa6a95340a73172af7098578a2be7ba59af561d112c6071de4f88234a8c6b2b68f4208a4d6e5d775b01de1f4a995ec06cb95b9065c97713979cdba30a717e94837a1f0327619ae595992c681b1f0d573e37281f7076272ccbaa091fd0c35e78827a5e24c3a8b6e240eb017f248dd47e9c42d319e271e32c28cbbd780f4f43748df8de5add10ff148d70ad1dc6ff0cea7fd41b55006d985fd5683fb199fdcd28e6681276bcf4f8b504f09442f05c3f49972b3c1ad01e557292ab801f730c6eef94f949228ba84987be16e1d37ee644cbe3b76409c51741afe6f09a92b17a67c2b64b28f3b916feef14d3303d5c9be7d909cdd328df785591a7572a9db5020afda409088a69e63fbee0e34b20b0aa481bf046436e261c8bed84e1a1e1de045ec85bf126a272792ffda19e251a179b8408cdd8b0d6c823f8c5a0b003ed19ef212a98b78156d25f26be7da363bd6f41803e9c845d63a65f44cdd4dd3d12e686120e53b35d7e81050ce7d916646a34eb577097cf5840a45516adac0da573b0b4ab7f114f588c92fac01b0b2d240cb8c5767304cce411fbafefc49eb41810a11361f3c2ca874ce5ab7eb6fb20132cb481ddc439f51ae176d72479750e83643bc682ae7fd5278c18918ad878da08dc13460d0a6e7371daa7fee8a60e27c9d71c7f6d72ec61f507d801f539274b9c3b60246ac57d509c00cc5d7bf15efa8b1eef4626467fc548d3de7df063e4622092da1bb7d7cb5762892e0735c52c5ad6f931e26f1f55ec072a4d4f44de5749c59ae932a91a3e96c248236ee160e260377e4a6d7ad15a149dbcd0845a29cb7bcc563e1acc7a95807a6b59dbe2f4ceee34f5c0200cad6090da72e35de26154f0efca2f3a175b48dd1abae4cfbf44648300787c07b89b4f7fdf4563059f00fb1d66929dd0d67a3f0fe9179ccd93f819d9ceb6e53b7ec9a6860e66dad7dd69294728667048578d2f556bd90775d84bef737b519fa4cfbce115c00ef12b10eaaae2cdc41bc179094f16682101ce0eb05b6de5d0f29d8f1076663c7e47dcce047c84da99cddc59d8b4b81ccd889c9347e201968306d9e0a2d4a11631938805b9ad6cb2ce1a626c2e2966740b60e9d47969745ab84bff691aa148e2dbcbdcda05d75bc8dd9a1e2264c2d47bf5dc1ce68bd1080ef946f514bae15f79b3c8bd51b5ffd404987ff462ce01443953aa5c60950382e6f480c9d6a4c37873dc1478d8bc7ab08ca2e0d37b5956f7bac44b71c9e0b2764f41f62e210143efc140cfdfe45e2c909e9ef61de0b5103be0497cd4d4d6e9fdb62174903e6c1966c8741eaf5d884c2de2539a9bb50b21c17228769cec4ae9843e920dff5fd0eb1b2b2aff9f9cafc398d1d130b368a482e776431c9feaaa7254ec8ae3b76bf7c301edd5f8393244d712c9cc597613399c4feb4ab11a2bffa8f139e71bc3440396cd09b06c917e89284d2a811653d4e9e954389d3053797ed16e72c0c206e9b852a779f6b6e5f729ded8d272732ca10619230d61dbdf4e222481eea77b16f76c3fa7c82ca3ccffe7af5a426ae92b2df9dcb0d8c66834a7166531ab37f4ce3227151c6002fabc2ec423f5c714b409f909ed528acd4689bf6d04e5db7bef82fecd5d99f4189e0dd9fb56c1b8459c4ef375b679741dcae72126be371812026599614df09ced09a24801f95e02321c24c6a2a7ccd2c23ca7d6808903ce68239b0e376f2a3d112a373c2336aa5426db3ca525effb2dbdaed4ed8d17e00382e0a91ba2086a9c34fcd71b6d911dcd71f0426fc6795d9168839ed199bd7aa2987f8c2fe4d944149249f2e8102a9e47d802c990a1618b8b841d6ea7f879f8b34c98d17d83ff07b36191fb156502eae4124827e27b995cb413da59b71b1248da7876e2ed58c79ea5195e83ea36cac95f4114fe04011dc960778354e1344a617010138f6b07e084124eac49fc71a34b4d3494d2853ca58b9ba85dda28c7188e8b5f5ba57d5c4709b61fd41c74b2d22514e94d4eed9bf01bf2a1f589210db9a9878fbf9fc5adc63dc024512310d5668fde54e31c97a0913532d5a005a0acaeac3b240ac42d610e185c9125f7a4dfe8191cb8541e3aa93220c8261125ab96656d752ff80e939a7c2aabbee920cada3bc2924195abbe8df7ad03fcbf1b3a1d64a15b819ffcb2f3606ccd0198ee9fb534d51ad4b8d235381e0cab0fb76ba80f7f20c8c50ce6a429d7f92213be6dc34aacc442a94ed65cb7057890c0d6e104800282c0e417088b0c3e62ed0de419da1be5aa0f15c9aaffcc9ce175d9f466c0f43bc5dfdb9c10e37971f7005632bc466439b6b965945cb477fc9e890e2598b244e6549f5f79e5c3c3749206920195ec038cfa9fbc4dd66a97acf276d397f461f4b0955e6c0947217ee2d7f738691961a5c1505a5d0c7a2b812d14cba101bb87bf17ae058538b5c0e8c3908bb33d7208644c1d4877429341b88af83aefde85d98f45d39400146ace925737ba7c42bd6bef02b058f71823c7c2146d714009247f4486211e17fe2f42c23d2a93e06012599dcc8668b718c8c621995e27a0d05000a1e495ed89e564215d605fd161d1c4b6fd011e1a05860172aaad264b00c045ed817e0d27959dcb2cbea865a90d64e971fe771e32c094078528dd6f67d14882e751e303a01d8b9315d0121f8abf18ca8e8623e86b4acac94d5650e151dba2dde71d99aaaea630775349f6a4bd3e2c2261b6e06c3532eca87bcf7d60c2a1c2c11d518b0e0ccde6b592a56b71dce3f771220788a7fc268077277a429f4a43647cddb8e9ef331a6f672f9dcceab9094fa76aa60f11a1f406337faa32468310ed9987b0ddf761c46e120db84e092db082452898da5755aba2644144bc45e9b7a3ad61fa69d572a5eb1049ee6f8d85ba0c0e73cda4c3c71108d2f8e4205efbb6d89e4add77f15040dbdff6c2d4ebd608b9f7dcb26cc5da068157dffcfe59c120397c587d1b297350f826f3a2ec072d1890091888265314fb3d6b28405d8f120e849e9369cddbb39f0d76bbb96432f23afa8059d79d9887bfe44372ac9f529bd46c6c24de1f6b80348033925d4c99d99dc35ed309b72da6cbc1ff37920be315037aeec00f4015f32f02623d3b05df7ba2886d7749b5c3fd95c85fb01416432fa111f3eb5f24d3206138e8020354ab0c22ff7a18eaee50ada6cda2ba7ff81356c66ebb9c63632b807b04a07c3e2cda3847c61765c31d2046c0a627a67df4091265b4bdca337c07055abf8893fe238a5306136c12cb0ffde67e0f8d3961ad06013f8fa6c28854ef5685b1edd11dace4cbc99d0ed7dd26ceaaadbf35bd3fa1304075b2f7ddbcef52653b8b6d9f64c3c43beb62abd42aa976621ca5ce30a9dd578f4704517e7cfc987242dcf557b4d0bfb697bf576a050b8e4df228d58cd6160e923008b7b223fea8f84f089c3392ef6d361dc24d4a91b9e38a428ceb11161c66ac7bb423c99f88e57a75ebfc42448a8fc0fbd9c6b4600cd127abcab4c4d7823506decbce7a4d23cff882221a44af1b19f62ca1aed9a4c0e98c7c008999826b4673928ae579842395baf1296724721f12665ea9c44ca20c11de4d217b4c16cbb2d2679afae2a60521c47b8d82b1d4cef331455472d124fa56d3be165e0b8f45c5ad422c68ac4944acb41767ed76fd31b3ed6a08b78e265a69a77fc90677ea51cdcb9e96232204eb267b15f8849ab23d8a580eab7ad50fb4b1ce11bb7b2fae1970e4e65c9a7beff914ac3f1b1149767726cbb217d79a3366ea3f2f9d72a118e4d1ec146fa7afaf460dc73d3ed5028a42e7853b57b6df580e1c80592f84f20e6b75ba5a27dd68067662b8bed8b429efc721ffd26a0b1076ac96473f9e88c62849c2a94438ba4ad8d6b189d79b6753c0506f05b8da92f7ad480543126a874d0170058fb8f5aef2f2d546372e68281b14922299232d5c4e2f2bd875bd8d42b1a7be1b7581920196b212908c1808af9fe4cb3cf3de29e9bf5e24aafd595937f7ad8d8eb32abd60af5e85412263f29b1b79955e066dca64826300f86102427c3d6a8e9617da2eabeeca3fb169f0a5460bf68388fb809e5c94d4bf0dc5448a7e96db2a10669885f6ac46419bd584b7aaac2e922adf6c0b57891fec1970f02b5bed5d6dca59e6ac039008232dbc792a5e18b95e27e6ee60174e423cc14efdd83ca224fcf8e3ae2be45cd6017ca8658c55860ca02d56a5c226aa5a6d2c36b49004ac717f9b763d1c09722c68e13a80d6e1de75ac8cc6ca2e85f2b78967cf8679c4bad8229a883a7957256d25253e04505bc5d4c28a72e6ae167fa60edc4c902498691c94766258ea6cefaff29c5f27fc9d4575efea2cb4cfb0295c6c19f9ec813942096f1261a44e4f91fe52f47d6b208c120efa2777290dc95442bf1bcd680c6266b08d2d1dbe4a31a85f9690e5b9e0f9394c477bbbb809636a6b4da4a5341de8ca00e294ffa032f79db908494cc99ce65c86934528c655084f1745379e8e713b8d9e3633d2006efe6df76056eaf0cee992b9f8037eb9faaccc079acd5713625c3da2ed62a1d3e0bddced3fb6a311ae077ad759d7f1f780e8cb17b9704f6823e78dc611e6b73f65db07f5c7f74af253efdf8f2871c521a3cdda986cbd60839a1b39cb661ffc08a794fa2896ce640ebc3a7137fda5b1449a3f2e295a0deb1e9143a8959132a7a4b71055c34de2d8c7b3f2f955e8cac59a4b22934fb73424dc9a65ffbee4502f3bdc14093616d572ef7b8794569c321d175875482e96ad814aa9af2553cdf228b0d620174371617e5225f3e8c15a59f9b6f4b3fdf375268d96eefd30652af2d3cc6ce2e04e2db2c1aada115aa5c4d57e4be9d877ab857e6c724a3f9a0b9339a17c06566d79037811673623f766efe17e25a47b9e5a0f4e2061b08fc0a58425a334d54c99cea8cba82413cad7eae7650dc141394489edf9cffd616ca196a8879be5ec5622fc15b6023654209f6c499674c737d975bf261785b31d635ed7ede727847f3f46ea6165a2e677c5c73c74f72a1effd7f0118ed8c6842b0ccab7fc08844bee0e9e72bca0b9bb3c4bc85773d088146468936ba6be19903813043766b772ced7045cbe7c4b3060b07a25b6821f04affec16ae5d6e7e94b95f72eebd707681d65655abe8fa2e8d9bac2719a4613f359a4465077083b442f82af67cbafcb6efe4fad1ec14addaa84adef5eda019847200464ee3599f9f7d14a71f6f7b2eeb249b0de005c6314d504abdab6047bf5bd514e3959d30129ecf5eb8e5e9106df97d701f66767ff79638d9ec135092e4b5f32f4b7c7bccc2ef2637a923317df6af2935f65e1cd0c930e0c7dd1a60f508d87785244305b828ea65bdb37777b29109aebde7d0b463f5a9b496c57cacc361a1ae133a9c741e6296171419e72e0d63a41144890114c1287a901ffcabd30a0f023d7b22476f70c58b7ae89205f4c36354ee6ed5fcfbc3502987a0ff64eb938b2b4b7127816aee5d52ece9df9090b82b0723f8abae732fa3d1285dba6ff3877057373eac4558f9079cdc6fee5bf312d07e66592a405bff5376b7fd9626966baae694c01f2514f59da32f0d84d34854be98f352d10e908bb2edb15b1152eeec06d95d912895769c71382fcc3a5a3f3b473a858e65579432545324aac1465143442c01d2507187559a10b6a17f0a8c8dc3e37da18c7a6b058ddb39bcb2d30775ec8cd04466ce4dde8fe08f3bbaae03187af0ee5d1e56d01cd42280c4c8798729d3fa82614390e0322138afd823b2e617baeba8883a458c7f5280d4d896016eb654e829503c33cdb06cdef2eb81eaab1819c90f492dfed0b07ae6d6bf3868bb098ff234b02ae7733d591ddaf7a3adfd2777403e032717f4bfa8124316660eb8e08733ec47dba5e3da848ca9bbf5022d6114e903a5c3753eba787559d90913e229b8553646972fa72c151989d0fd964506e479d4ecde62ebe04d6e0a422b16e7c0a17ad2440f5dbe5972bdf4463dce11972d9f0ac644cf947fd519886a32e1ad4cd488363a95f994c3dcc28b5dc6a63d0e3460d5164fe2791c157c80f10a3c88e41ab5155bd202e0ec99f45007f617bb87810cc767eef1bab6eaade2e5e4399ccd44ae87e8047acd80d0a5f5c7ed36f915426748d53e1806f687a82b8e5a62de3d2045b168afada014ac97bca5e9e3ca1f73ecf203a13fbaf4b4ce5015c91d1d28801fd2a7557a48cc98cc0afa3bea6438ac264aa90071f86ac48a2a55ee197ab55dd98d6bc1f18dac265bc2cfb513401e13084dc7b81b58d4f24ebe5d38aff7294f465bd7bc92a5b23eabdb2180c9204fc50c685cc4b0df28a5e1116fe008110b384c8b68ed826a8b74e73ac7bd7f85a604f1ea01e537628c84f15802a32316aea2decc02c14472fbcfcb14354941845fc0404bdb28de1e0ea080c094718768eaee89e1e7621e43a34c3bad51b04a423af5bc93dc8215197b12cc9b24d95b51911e8fd198d18c010df4949436ec8bb3531fd44e37c3f42409a2fc36c22c27a6075f02be1749d9fe73dc813efda50158f1db2000771bdaee3ccca48c4781ae47ba51a860e71b95c09547756d90b7a468417d008ad6c137347c1da613e46fffe68fdb8c7323062bd0abf995c1c35cefca671e65b10afe214236a629c4ea557bdce2ed4b3fadffd2ac125bff34843eadb88f80b877345ac71ac2e80d00c5060987b8619f49868d986c2b8670290471363a14c56a206119bbba941ee52270df3b6db876708a202b1edc0f9d04b9a0f9890bd4040169bdb79ec2c8dcc29b78c5074e309a6088008a8da84aa62b36c78919bd38aac81541066cf1304b0aedebe25a5dce9915c1014a6681bae48085469ba803d0a511c2ceba765b0f0e246d13b8fe0836689210b7bec516101b5a34dc4b79eeb95a8b9ba360f4e20db1480473874425f0fae996c2c084a052be17b1ae5ed79454820404fb835f010652978ac6906ef9f2286dd66eab27574c7c77e9307913e893aed8b796a89f66918f57deefedb8edd2fb9773a453ceeb50c8b78d06bceea34584bcfa7d499709d769ac3a577b47faa267213e48b06701460c3fa995ec0f4972a896d3fe32d80101206e2400ecb2ad9a65397b285a009459c75bf619981ae3d2455c2412e195c366b5f621818aea938374f10df6989b3d70de55aab9febc699f933fb2597d167185a24015cbe8058c90fe2b39c0fc12c86eb87e983b18fc39274935a738ff412453d15d6edd6514e43680d56ac045b6ba4eb2823b2748a5696c85978e105950acaa4e97c7894f6ee82839e0b064b39901d1e8004c4c22cd622ae676069ab59a271208b8929b0411eadcc42909e870527c721cac2b0f82d557d6030dbcb529dc74d884de0281fa320f692f50a3810a44f0e2a48a1baa110ea0ea6657d360a9acaa9f2e09e608dde0223119ca237e9e12540d3a95275fda8410626d9dd9fae4542e9b3a1acc47d1810eb149bb332ebfde0a692d4b0bb29039128225a74459260990ecc61387b496301b11ac6c550f5bed7136d167f8b1dce0590ec00c6d7298e230678a3c76036308adb8a4cce859763b00fbddd25ef2e86f7499815cbc6f568931338d62eb2205b8f931c8f30536adf1c3aabbf45fc7881b47b1939873e597011088b1688ab61f6022b2f27be4c8e3ad8dcce681df96c62c3fa7a03576e833708cb212e00d17b085c686b3ca91f72cb6c511f7457afa5dac979f20bc182929fe18610165cfe3e7ee198028f8a91b498fd47166806108dde5cfaf7349c704223f03793dabeedd1fa1a111ea1e2cd64834d9967c7eaaf9c7aeea1bd027539b19407dcc3841e1e08d0c065fe238238ba2c4a5bdc94abdc7145fb4a795fe571560a242511fc4565d4226b38b4d6e4718b16df7ac6de54942793080cdac86c77b839889ac633c7f2d43a11b8c50c735e8092805365a7e2ed4c516f196687dbbbd1b8756e9e39718c97ef6cd800cf4487e601222adff611dc3e7e94276dba36801d3781de58ccb2353b6a38b962989cf35cc5c9737e3afb6425997695d8e31ffc9369937b4ff0c16ee24ef6f0d5e002a550f1ea1c1d3cf0c5db730caaf93088e800d3d2f39a191a29da0504cfa8a455f5854b24bc6937b6473d204ed15193e146eaa63f42649bfcff8aabc4675464e93f2009c154c3a424e5222b33ad008498ccd312ed40f50a685958dbea36d5da0f71fd5faf72656b933e41ce5b171bd119fe0fc5f3390ad4461100b81f555266f3d21ded51fa12ea48df10d5296d1f0670de170e700549bc3228bd5da3411022c9e8988601547b4fef6a79fca49fd175dd05f36577c0f352e1909cae11bbff4eae628e21d7c3cfc7843f58aed7bb8af32c04c709612c3c672b416db29ec4069020d6424dfdf8f074aadf28190314d9eeabfb09434b368e0cec03f1da74a447a99888cab1e5190d396a52fd8a3ea9574a0e4873513e7aff27347dcf46fbab6a248140276b397623e8409fcd6d6bba068ca1aee0e5a619ee914ed706f7ce9915aadd482123975d02e0bf76bb2b3e9a78afd926cffc7f802911f2c80316ae8ab3f0721adf29a0c23360ee0513cd7fb58d0a79692499c889838d5666a30da06037086d69fbd85a5cb9e73ba6c025d32b107b5786ea2b67394625c1e14f91e4b3bc1db48fc3b87d1479d72b26d3ee4a364e5d68c75145c2500e7f8aa0f85a6a7d6b6a6b006ac7b64444d1ffebe12149563aa6c4ff368a3e8648078eddef9fb940eb61a667ce4c016c684436d260b622f56852e3767d17b7681dd552b42b9e190ff08ee2ea3d14ed8a3c5972cd866a08fdb989805fce67fc4ed7ad5d60f0b1e132f74892b8b0cc7b1dfef6f3a686a1bb3133851f8f4921b123b7892da52b9c03ec0a62814677c2c40ad43f6377318a6da766564eb895c993b1f5cc4d31719c72bf0a2facfb561c564363ae743a597be4772c99170a261c441e880a49de0864edc524bed52a48f978b7bc4b531deb16b54c0f4bc9b3dc00606b104d926f43cb880ebb779c5603d7366cceb5e893c9fe7381f9a2d3100fc0976f63f05ee459206b777d564a679aa078b05bd3021bc44f534217f8b55562604e001359270822bd99d5652b1ff56201b96e983d0ba2a3ceb33e035a5f7ebb41709c555cd447a8c0db5f46bd58e68a623659e1ebf6506b614faa5a7bda073da270a1285d79f074d578f481b1bb3083bfe15367c9b8fa8f2295235614241741659ab25cb6c6d1dbad9c39a18402d2268ce4e7389c6380389fa48a0d2283d2a164669f9d3db69b12b8cb426dea8147b346e5d356073d5998180d1b21d1eb7e54c1e052cd9b322bb9b370b656fa1c980fafe632ca5b902e95bba3f8d59e2bb7f03d76618beb3d25ff75f934a47b1fc2d1e28131e8e37403df0a35bdc91e3430a74b687fd791b8c36ba6856d6cf61cfe0aa85aba546cd342f262d7517f0e2242575b2c2c3a196293c755dbee31e4b607e7974c7de78d3a9be5adcd28b152334d8b85940a19a5ac06e50859e26b0e6d790478a9be19332f15aab2422bcfa78bf981665f5a1b66efe3e610295c1b0fea35d870e3d46471952b95591bd972b58a381de2bef4a4614fa698e50dea7248c8d6c0a88d9e28b3b21eeab802547f4f184b0eb1c98f3fba7627f0ad3259def25cee76becd2cea2932e257ec7f79db39f52015cb21042823168015171a4fef8f1052b631f957da8ecfa65cece0676aacb7c4b7302734189c571fc03140b1d6dabcbe4b8711385b712d9f72aceb1719c639c7cf20e9e0a522e2da632242a1302570db48f4e078bb6e273e650a05c603d804e26ef1514ae13c3d9de278d09ca42944e0dfc0f3b11192cc82014f1b5ff2f828c77f24ebb92c788341776b33f5ce3308e26bc67c76bd859fe6a787ea38e0a3d9cf102e97df92bfce7749afaf50aadec018f25c9f81ae6e880c04175c46b151df062eccb0aa4abc18c3daa794544f83654b273e81ce6e593c8f1d12daf95e2d1095203ee9698f88a6d9257384a9fb12abae2c09cdb7083820945f734b0e37aa2dfec57d2a1a612301266e420885bf0e7bc3bd081ea8b69b42b2866ecdb8a6fd86ecd5e0952f9abd2cf7c9dfb63028e31dae8161dfec468e0c7c31d52f8e807ab6dd3d43288b900cd850c519add64bc0a6b5e08507f276c402f89056daffa4189be60acfaa20c1f1b6bb7ed7033c7fad4c7c82080875b3154e4f5b240f6fc05c5658a1bc14e83d7a7c5525f8026cb04364d6fc5f70c1cc9fc9570c054e48b3ead8910d98500a30970ba14eea351c7ced1e5d14d3a8fa049916965ca5fb26fd84d47399573ba83db7d9e2b42e9f9422cd1a06d5613f42e3e7a84ece28681ff8add0a684f9e9f9cadfbf9634c373c104d87743013065a703c7d95994305f06df6d9a722ba42770a33ecf3645e23bfd6ad15a443752f6f4c482189f958e82ff42b987563ebd523d77b12ea7ba8d41c0eb962344565774965c1f6e337af9479484ae985a9ef375c6162758f6be3895d760ab42e844db0c486d6fa5a3e68e1b28a934730f81b646dab13fade806eb2e9eb4ef55b59bcb3211153b7db9bb214c0c317fcf06fd33fc618ab26b12e5f07e40b2fa273628c96fd49f7d52c73858648fb4d1cc7fc5a2ccaf140412bbb2d8c6d84ab9324fa63c9a8bcc528a633062c5e142eaa1048c567ad6f0f74403f901cfcb9651507e6ded6c763c418c231bab613609cf1f763417546508bf165a93deb364dbdb9e98254c310d55a938f7f655cd968ba4fe215626187403987f39992a382ddf3559576e5cfedf1c620b67cdbf79468adb84509318f9fb796776e4a8c0673db325eb6cd23323ced91f29b756a64eaa40a547d96dbed6d84f35570054d564edf1fb0b98549436631e4f56db0b4fb2e9f023f25f603808401f15ecccc8d313fca7ee000080d21039d230103b7b2e123dc8858ed309a9e6b8f09a1fcb2e82108e78714b87ecd7a55ac87d609108f215077f18db103df266c32459fee7e47d9d7c66e1297e12cc5a3999dbc565b0c2308c024a122bfa1ff6056523f6f831ba2605549e875b415f90d2d7df5dad48805bcdf50aa6cecf7039c8bba91dae8276a708a8adcff63c87f50f7ec2e7ef976e92a61964a49d07ef7faf471dd942fc6acac93c115445a8cf802cbc0d72e152618081dd08d7552a810d4221c80dc303317c9442252931ffb716ea7bdce3f6b69e7ccb586afb0f2dea197eb3fb51920dcc72b439e9e9362718f9e4e51cb08fb459a2047e288e8eb5dd0f9763cbd6cb860aa9163f2b1691e6876e839633021fa98793b4cdab7135c67ff5c3af5f31b0dc0671d0f1c806b02f408512ea49aaaa4f405ed91ee8c3ab5f0b08613d70d33b3bd3c843e14d53bd902935c3c7dbd572a1e8985d875c84919bd38e79e921949c46cd8e6de4ef5c7f9a2813001bf47dc7bb53dccbf617cff247fe0dec37298dd74949d7c417211a8818667fb2581b9a7d81b927bb287cde444ade6ded58dbfec101aa35be30829e0fca50afb7a712e8ade89701b595cb315d638016286b1349e20b2f9c0fa8002d0e7180bf7639a63c1e53b0ca0af1172fa9ef0b7a3c8886c2236c6e7bfededabf4078ea54db92e96378289cf7fc31c68aaa05cafa07c6507c9be0c3adbf5a4aee2ac5d95c81a5dfe54ba0733c651e8546c3c31194d5701f2fc5ab9c4c2e8cee03adb7761d826fa44fa9b2169fa438bb96ff6381a23ab0d9edcdc2e5899fbd959ba06707f11a6f4d8075d713a36ef779e5f44e197a72862105e3a29df81f6f273bc1cf1e261d119ab8d41b0d71431a89dd7cc9cdf26621449eeee74782739ee5b9987f56002d2c1f876d5bd474b5a75f4460797ed21487f229b96c36a39f363f371c87bc0086c1847843c9f1537ce9fc19935b5c8cf272581b7d13c8c25e757b8d240332b168953f7064d3a8c8ff6e72a2b8ea28d2f3c7e0a4693d541ec68ab21fbcb75b48b7f97c32c3ac5ecbfeb20dacef259ba772bbfb2fda6d8e7f79721b6b976a2f975345a674dca454228afa373a0db44645a3641f44ba9a472cc8cdeb3eac6daf1a69720fa35d58a1e0707078426545fa00bff1311b6c056b8365b2758342a238eba20991ad0cf87e19e04ea4d17934c706c7f0ad84f7022d5b459d17eef3b71a283746d85873a53ab2d204c99ff9882e8c296e</script>
  <div class="hbe hbe-content">
    <div class="hbe hbe-input hbe-input-default">
      <input class="hbe hbe-input-field hbe-input-field-default" type="password" id="hbePass">
      <label class="hbe hbe-input-label hbe-input-label-default" for="hbePass">
        <span class="hbe hbe-input-label-content hbe-input-label-content-default">Hey, password is required here.</span>
      </label>
    </div>
  </div>
</div>
<script data-pjax src="/lib/hbe.js"></script><link href="/css/hbe.style.css" rel="stylesheet" type="text/css">
    </div>

    
    
    

      <footer class="post-footer">
          <div class="post-tags">
              <a href="/tags/redis/" rel="tag"># redis</a>
          </div>

        


        
    <div class="post-nav">
      <div class="post-nav-item">
    <a href="/redis/Redis/%E5%8D%95%E7%BA%BF%E7%A8%8B%E7%9A%84Redis%E4%B8%BA%E4%BB%80%E4%B9%88%E9%82%A3%E4%B9%88%E5%BF%AB/" rel="prev" title="单线程的Redis为什么那么快">
      <i class="fa fa-chevron-left"></i> 单线程的Redis为什么那么快
    </a></div>
      <div class="post-nav-item"></div>
    </div>
      </footer>
    
  </article>
  
  
  



          </div>
          

<script>
  window.addEventListener('tabs:register', () => {
    let { activeClass } = CONFIG.comments;
    if (CONFIG.comments.storage) {
      activeClass = localStorage.getItem('comments_active') || activeClass;
    }
    if (activeClass) {
      let activeTab = document.querySelector(`a[href="#comment-${activeClass}"]`);
      if (activeTab) {
        activeTab.click();
      }
    }
  });
  if (CONFIG.comments.storage) {
    window.addEventListener('tabs:click', event => {
      if (!event.target.matches('.tabs-comment .tab-content .tab-pane')) return;
      let commentClass = event.target.classList[1];
      localStorage.setItem('comments_active', commentClass);
    });
  }
</script>

        </div>
          
  
  <div class="toggle sidebar-toggle">
    <span class="toggle-line toggle-line-first"></span>
    <span class="toggle-line toggle-line-middle"></span>
    <span class="toggle-line toggle-line-last"></span>
  </div>

  <aside class="sidebar">
    <div class="sidebar-inner">

      <ul class="sidebar-nav motion-element">
        <li class="sidebar-nav-toc">
          文章目录
        </li>
        <li class="sidebar-nav-overview">
          站点概览
        </li>
      </ul>

      <!--noindex-->
      <div class="post-toc-wrap sidebar-panel">
      </div>
      <!--/noindex-->

      <div class="site-overview-wrap sidebar-panel">
        <div class="site-author motion-element" itemprop="author" itemscope itemtype="http://schema.org/Person">
  <p class="site-author-name" itemprop="name">zhengyidi</p>
  <div class="site-description" itemprop="description"></div>
</div>
<div class="site-state-wrap motion-element">
  <nav class="site-state">
      <div class="site-state-item site-state-posts">
          <a href="/archives/">
        
          <span class="site-state-item-count">39</span>
          <span class="site-state-item-name">日志</span>
        </a>
      </div>
      <div class="site-state-item site-state-categories">
            <a href="/categories/">
          
        <span class="site-state-item-count">5</span>
        <span class="site-state-item-name">分类</span></a>
      </div>
      <div class="site-state-item site-state-tags">
            <a href="/tags/">
          
        <span class="site-state-item-count">7</span>
        <span class="site-state-item-name">标签</span></a>
      </div>
  </nav>
</div>
  <div class="links-of-author motion-element">
      <span class="links-of-author-item">
        <a href="https://github.com/zhengyidi" title="GitHub → https:&#x2F;&#x2F;github.com&#x2F;zhengyidi" rel="noopener" target="_blank"><i class="fa fa-fw fa-github"></i>GitHub</a>
      </span>
      <span class="links-of-author-item">
        <a href="mailto:zhengyidi1357@gmail.com" title="Contact Me → mailto:zhengyidi1357@gmail.com" rel="noopener" target="_blank"><i class="fa fa-fw fa-envelope"></i>Contact Me</a>
      </span>
  </div>



      </div>
        <div class="back-to-top motion-element">
          <i class="fa fa-arrow-up"></i>
          <span>0%</span>
        </div>

    </div>
  </aside>
  <div id="sidebar-dimmer"></div>


      </div>
    </main>

    <footer class="footer">
      <div class="footer-inner">
        

        

<div class="copyright">
  
  &copy; 
  <span itemprop="copyrightYear">2021</span>
  <span class="with-love">
    <i class="fa fa-user"></i>
  </span>
  <span class="author" itemprop="copyrightHolder">zhengyidi</span>
</div>

        








      </div>
    </footer>
  </div>

  
  <script src="/lib/anime.min.js"></script>
  <script src="//cdn.jsdelivr.net/npm/jquery@3/dist/jquery.min.js"></script>
  <script src="//cdn.jsdelivr.net/gh/fancyapps/fancybox@3/dist/jquery.fancybox.min.js"></script>
  <script src="/lib/velocity/velocity.min.js"></script>
  <script src="/lib/velocity/velocity.ui.min.js"></script>

<script src="/js/utils.js"></script>

<script src="/js/motion.js"></script>


<script src="/js/schemes/pisces.js"></script>


<script src="/js/next-boot.js"></script>




  




  
<script src="/js/local-search.js"></script>













  

  

</body>
</html>
<!-- 页面点击小红心 -->
<!-- <script type="text/javascript" src="/js/love.js"></script> -->
<!-- 鼠标悬浮 -->
<script type="text/javascript" src="/js/mouse-float.js"></script>

<!-- 鼠标点击爆炸效果 -->
<canvas class="fireworks" style="position: fixed;left: 0;top: 0;z-index: 1; pointer-events: none;" ></canvas> 
<script type="text/javascript" src="/js/fireworks/anime.min.js"></script> 
<script type="text/javascript" src="/js/fireworks/fireworks.js"></script>
